home *** CD-ROM | disk | FTP | other *** search
/ Mac OS 9 Serial Number Archive / SN Archive 2023.11.04.toast / TSNG / TSNG 1.1.1 / Read Me next >
Encoding:
Text File  |  1996-07-12  |  18.8 KB  |  368 lines  |  [TEXT/R*ch]

  1. The SN# Gen Read Me
  2. ===================
  3.  
  4. •••    PLEASE READ THE VERSION HISTORY FOR EACH NEW RELEASE TO STAY  •••
  5. •••       INFORMED OF IMPORTANT CHANGES AND SECURITY ISSUES       •••
  6.  
  7. As you should already know this app will generate (to a text file) serial/registration numbers (randomizing whenever possible) for various Macintosh software.
  8.  
  9. It should go without saying, but there always seems to be a few morons out there so said it must be:
  10.  
  11. ••• DO NOT USE OR DISTRIBUTE THIS APP IN NON-ELITE ENVIRONMENTS…  •••
  12. •••  DOING SO WILL ONLY RUIN IT FOR EVERYONE (THAT INCLUDES YOU)  •••
  13. •••  THE FIRST TIME I HEAR OF A LEAK OF THIS APP WILL BE THE LAST •••
  14. •••                   THINK ABOUT IT…ENOUGH SAID                  •••
  15. •••     (DO NOT GIVE THIS APP TO MORONS -- THANKS IN ADVANCE)     •••
  16.  
  17. I ask that you do not include numbers generated by this app (at least not in wholesale fashion) in other reference lists, since: A) This app generates different numbers (whenever possible) each time it is run so that there is no quick/painless counter measure to it; B) doing so would only help to counter its effectiveness (mainly by shortening the longevity of the SN# algorithms staying relatively static); C) it would just increase the file size of the other lists while adding little value beyond the first number.
  18.  
  19. Future release versions will entirely supersede this release so there is _absolutely no need_ to keep old versions lying around.
  20.  
  21.  
  22. SECTIONS:
  23. ========
  24. Mission statement
  25. General/customization information
  26. Privacy/security warning
  27. Miscellania for would be CP reverse engineers
  28. List of supported products
  29. Version history
  30.  
  31.  
  32. MISSION STATEMENT:
  33. =================
  34. Copy protection (CP) is an annoying nuisance that is ineffective.  Serial number generators force software publishers to either: Accept the fact that their CP scheme is useless (possibly/hopefully abandoning it and the overhead of managing serial numbers) or; change their CP method/scheme and issue new serial numbers to their entire user-base for every release of their software.  In this way the easy counter-counter-measure (of simply just checking for known elite name/password combos with each new release) that some authors (eg: Realmz's author) currently take is eliminated (since they won't know what names/numbers to target).
  35.  
  36.  
  37. GENERAL/CUSTOMIZATION INFORMATION:
  38. =================================
  39. The date and time at which the output file was generated is now included at the start of the file -- this is the zero date that all the chronologically dependent algorithms use in their calculations.
  40.  
  41. The names specified for 'Owner Name' and 'Macintosh Name' in the 'Sharing Setup' control panel are now the first two user names used for generating serial numbers from.  However this info is not saved to the 'Generated SN#s' file for security reasons (see next paragraph) -- instead you will see '<Sharing Owner Name>' and '<Sharing Machine Name>'.  This change supports the few programs which require using the 'correct' user and/or machine name to fully enable themselves. (eg: the Dejal products)
  42.  
  43. Currently you must use a resource editor if you wish to change the user/company names (you may specify up to 20) that are used during generation.  You may also change the number of copies to be licensed for (simultaneous users 1…9999, default is 10) and the number of serial numbers to generate (1…50 [this is independent of the number of names you use], the default is 3) for each product.  These values are stored in 'STR#' resources that are labeled so that changing them is self explanatory.  A future release will probably get these from a separate text file in order to make customizing easier.
  44.  
  45. The generation of large tables is disabled by default, but you may enable it by changing the 'STR '#129 resource. The only large table implemented so far is for System's Twilight.
  46.  
  47. Ocassionally you will see output of the form:
  48.  
  49. Illegal name:    '<the illegal name>'
  50.  
  51. This only occurs when the given user name does not meet all the conditions placed upon it -- this is almost always due to the name being too short or containing only white space. (Don't be a moron -- using white space only, prefixed, or suffixed names is just dumb)
  52.  
  53. All of the serial number routines were tested with at least two numbers and usually more - however it is still possible that an error may have crept in, or a subtle point may have been missed during the reverse engineering and inverting that only shows up some of the time --- so if you encounter an entry that doesn't work make sure you've got at least the given version of the product in question.  If it still won't work complain with the complete details and it will (probably) get fixed.
  54.  
  55. If you have new or better algorithms (in some cases there is sufficient ambiguity [not always intended!] in the checking algorithm to allow multiple solutions to the inversion problem, with complete generality being the nicest but hardest to obtain) for current (ie: non-legacy) products feel free to submit them and a few examples of _known valid_ codes. (most useful would be C code that actually compiles - but intelligible pseudo code will do)
  56.  
  57. Another item that would be useful is the actual _correct_ format of serial numbers for products which this app generates numbers for.  (in the case of a discrepancy only -- most of the time it is possibly to fully invert the checking algorithm and thus obtain the format of the serial number, but not always, in which case a reasonable/arbitrary _working_ guess is made)
  58.  
  59. If there is some _current_ product you wish to see included here that _requires_ (ie: is dependent upon user name and/or number of copies or needs unique network serial numbers) a generator feel free to request it. 
  60.  
  61.  
  62. PRIVACY/SECURITY WARNING:
  63. ========================
  64. You should be aware of the fact that just because custom names, such as the <Sharing Owner Name>, are not written to the file does not necessarily mean they are not recoverable… in some instances there is sufficient information encoded in the serial number to reveal all or most of the contents of the name.  Taken in combination this could almost certainly be used to reveal the hidden names.  Thus it is unwise to share a generated text file -- unless you first cut all lines containing closed angled brackets (<>).  In any case it is extremely unwise to put any non-anonymous information into any of the following places on your mac:the <Sharing Owner Name>, the <Sharing Machine Name>, volume/folder/file/printer/network device names, the map control panel (ie: don't take out your gps receiver and enter your house or towns exact location - use a large population center in your time zone instead), any Microsoft product, any net-aware product (this could be anything nowadays), any product that you produce (or change) documents with -- this is absolutely critical in these online/networked days…  Preferably you should only use a 'clean machine' to access the net -- that is a machine which is only connected to other (priviledged) machines when it is not online, and even then the connection must be one-way; too the clean machine only (that is the clean machine must not have any access priviledges to the accessing machine(s)).  If you feel you must put personal/unique info into any of these places you should be aware that every time you share a document or even just log onto a network you are risking the (distinct) possibility of divulging that personal information without ever explicitly consenting to this invasion of privacy… this is an unwarrented and (usually) unecessary risk that most people are totally oblivious too -- no one will protect your privacy for you, the only way to be sure of having any measure of privacy is to simply not provide any unecessary information anywhere, period…  for "Those who are willing to trade (their) privacy for security deserve (and will get) neither" (can't remeber this quote's source but it's well known).  This issue is the real reason behind this app - its nobodies business what software we run or what we do with it or who we are unless we _directly and explicitly_ choose to give up such information on a per item/per usage basis.  After all if you go out and buy a television you don't want anyone to be able to find out what you do or don't watch or that you even have that television unless you explicitly tell them so. Why should software be any different?
  65.  
  66.  
  67. MISCELLANIA FOR WOULD BE CP REVERSE ENGINEERS:
  68. =============================================
  69. There a only a few basic non-keydisk, non-HW Dongle copy protection schemes in wide use:
  70.  
  71. 1)    Just a SN#/Reg Code (and possibly version#/id) that has certain
  72.     mathematical/string properties.
  73. 2)  A Name/ID (given or enterable) field, a copies_Licensed field, version#,
  74.     and SN#/Reg Code which is derived by manipulating and combining the Name/ID
  75.     field and the copies_Licensed.
  76. 3)    A time (date) based/limited SN#/Reg Code of type #1 or #2 above.
  77.  
  78. All of these protection schemes can in general be circumvented by a process of reverse engineering the SN# checking algorithm(s) during runtime (by using a debugger).  In general you try to get an interrupt at or near the beginning of the SN# checking code (this step can require some insight - but 95% of the time placing a local ATrap break on GetIText, StringToNum, NumToString, DisposeDialog, HiliteControl, and/or ModalDialog will work).  Once you find the start of the checking code you simply (or sometimes not so simply) symbolically disassemble the assembly code into pseudo or C code (I use a mixture myself).  Ninety percent of the time you will see some code which reads in all the user input fields (possibly upper or lower casing them), checks to see if they are within certain length and data type ranges (eg: Name>=4 chars with no digits, sn#=digits and >0).  After these preliminaries you get to the actual heart of the method used.  Typically you find code that does any/all of the following type of actions in various combinations:
  79.  
  80. A)    Copy/Splice field(s) or subfield(s) to/into new variable(s). (ie BlockMove)
  81. B)  Convert a string/character (not necessarily numeric) to a numeric variable
  82.     via StringToNum or a custom conversion routine (often the base involved is
  83.     not 10 but a prime or power of 2 such as 8,16, and 32). [or, inversely 
  84.     convert a number to a base b string]
  85. C)  Add/multiply/eor/ect... up the value of the characters in a string -
  86.     possibly including the length byte in the case of pascal strings.
  87. D)    Perform mathematical operations (often via library calls) such as integer
  88.     division (/), remainder upon integer division (mod,%), exclusive-oring
  89.     (xor,eor,^), oring (or,|), multiplication, addition, and subtraction. (note
  90.     be careful to observe the size and sign of the operations - ie byte, word,
  91.     long and signed or unsigned).
  92. E)    read/load in data from an internal table.  (one table of $100 longwords is
  93.     particularly popular)
  94. F)  do 1 of n manipulations as selected by the value/state of some data.
  95. G)    loop over all or some of the elements in a string/number and perform any
  96.     of these actions for each element.
  97.  
  98. The last step in the SN# checking code is almost always the direct comparison of two values (usually longwords, but sometimes character strings) -- although sometimes the comparison is distributed throughout the checking algorithm calculation itself. Sometimes one these values is simply just the numerical value of your SN#, but more often the slightly indirect method of mangling both your SN#/reg code and all other fields into character string or numeric values and then comparing them is used.  This second approach and generalizations upon it usually prove more difficult to invert in general -- as it requires reversing (at least partially inverting) a greater number of steps, often with more restrictions on intermediate values as opposed to restrictions on the terminal or input variables.
  99.  
  100.  
  101. LIST OF SUPPORTED PRODUCTS: (see the version history for version specifics)
  102. ==========================
  103. 4D Compiler Pro
  104. 4D Developer
  105. 4D Insider
  106. 4D Online Help
  107. Aladdin Desktop Tools
  108. Apeiron
  109. AXS Online Reader
  110. BackBurner
  111. Barrack
  112. BeHierarchic
  113. BrainHex
  114. CalcWorks
  115. CD Directory
  116. CD Namer
  117. Chiral
  118. ColorSwitch
  119. Compact Pro
  120. Conflict Catcher
  121. Custom Menus
  122. Cyber Finder
  123. DeBabelizer
  124. Dejal QuickEncrypt
  125. Dejal SndCataloguer
  126. Dejal SndConverter Lite/Pro
  127. Dejal SndPlayer
  128. Dejal Text Utilities (TextConverter/TextMerge/TextSplitter)
  129. DeskPicture
  130. Developer VISE
  131. Developer VISE Lite
  132. DiskDup Pro
  133. DiskTools Collection
  134. DiskTracker
  135. Dome Wars
  136. DropStuff /w EE
  137. Eclipse
  138. Enhanced CU-SeeMe
  139. Escape
  140. Escape Velocity
  141. File Buddy
  142. FileGuard Remote
  143. FontBox
  144. Giza
  145. GraphicConverter
  146. Installer VISE
  147. Internet Memory
  148. Internet ToolKit for 4D
  149. Knot
  150. MacSki
  151. Maelstrom
  152. MathType
  153. MultiClip Pro
  154. NetDoubler
  155. Nisus Writer
  156. Now Bundle
  157. Now Contact
  158. Now Quick&Easy
  159. Now UpToDate
  160. Now Utilities
  161. PacMac Deluxe
  162. Panorama
  163. PowerBar Pro
  164. PowerReplace
  165. Ram Disk Saver
  166. Realmz
  167. Realmz - Assault on Giant Mountain
  168. Realmz - Castle in the Clouds
  169. Realmz - Prelude to Pestilence
  170. ScrapIt Pro
  171. Sleeper
  172. Smaller Installer
  173. Snapz
  174. SoundEdit 16
  175. SpiralGraphics
  176. Stuffit Deluxe
  177. Stuffit InstallerMaker
  178. Swoop
  179. Systems Twilight
  180. TechTool Pro
  181. TheZone
  182. Ultima III
  183. UltraFind
  184. Updater VISE
  185. URL Manager
  186. Versatile Pro
  187. Virtual
  188.  
  189.  
  190. VERSION HISTORY:
  191. ===============
  192.  
  193. ?.?.? (DNE yet… this is a 'to do' list for me)
  194. -----
  195. include 4D Server 1.5.x (1.5.1) gen
  196. include arbitrary length longint library and implement generator for LoanPro
  197. interface for user options such as copies.
  198. company/organization and ph# lists and randomization.
  199.  
  200. 1.1.1 (A few generators more…)
  201. -----
  202. finally got around to fixing the long-standing math bug that was causing range 1 [n..n+1] non-boolean random values to always return the lower of the two possible values -- this will greatly enhance the variability of the output of several generators…  So far none of the contributed generators have been in C, so there is a slight chance for subtle error(s) to creep in during the language conversion process, however each implementation was tested with at least 20 different numbers so this is quite unlikely.
  203.  
  204. New generators…
  205.  
  206. 4D Compiler Pro 2.5.x (2.5.1)
  207. 4D Developer 3.5.x (3.5.1)
  208. 4D Insider 2.5.x (2.5)
  209. BackBurner 3.x (3.1)             [contributed by: =-BOOK-WORM->]
  210. Enhanced CU-SeeMe 2.0.x (2.0.0) [contributed by: =-BOOK-WORM->]
  211. Escape 2.x.x (2.1)
  212. FileGuard Remote 3.0.x (3.0.1)    [contributed by: =-BOOK-WORM->]
  213. Internet ToolKit for 4D 1.0.x (1.0.4)
  214. Knot 3.x.x (3.6)                [contributed by: =-BOOK-WORM->]
  215. MultiClip Pro 3.5 (3.5)
  216. Panorama 3.0.x (3.0.2) [was included in 1.1.0 but I forgot to list it!]
  217. SpiralGraphics 1.x.x (1.1.1)
  218.  
  219. 1.1.0 (Major security enhancements and internal restructuring, now in CW9)
  220. -----
  221. now generates and uses both 'Random Names' and 'Random Common Names' in order to further thwart any efficient/realistic name based countermeasures - please use these names or (preferably) your own list of custom names instead of the (fixed) standard names in order to (virtually) guarantee safe operation.  I have encountered several attempts to counter any/all of the standard names - some of these can be quite subtle and nasty, such as deleting/corrupting files or games cheating against you --- you have been warned… [please read the new section 'Privacy/Security Warning' above if you have not already done so.]
  222.  
  223. New generators…
  224.  
  225. BeHierarchic 3.0.x (3.0.2) [anonymous (logic only) contribution]
  226. BrainHex 1.0.x (1.0)
  227. CD Namer 2.0.x (2.0)
  228. DropStuff /w EE 4.0.x (4.0)
  229. FontBox 1.8.x (1.8.2) [minor bug (word mult instead of long mult) corrected]
  230. Installer VISE 4.0.x (4.0fc4) [CP & code checksumming implemented in VBL task]
  231. InstallerMaker 3.0.x (3.0)
  232. Internet Memory 1.5.x (1.5)
  233. NetDoubler 1.2.x (1.2)    [contributed by: =-BOOK-WORM->]
  234. Now Bundle 3.6.x (3.6)
  235. Now Contact 3.6.x (3.6)
  236. Now UpToDate 3.6.x (3.6)
  237. PacMac Deluxe 1.0.x (1.0.2)
  238. Panorama 3.0.x (3.0.2)
  239. Realmz 3.0.x (3.0.2) [name countermeasures - only uses random or custom names]
  240. Ultima III 1.x (1.3) [name countermeasures - only uses random or custom names]
  241. TheZone 1.x (1.4)
  242.  
  243. 1.0.9 (another incremental update that satisfies some requests)
  244. -----
  245. New generators…
  246.  
  247. Custom Menus 1.0.x (1.0)
  248. DeskPicture 4.0.x (4.0.2)
  249. Escape Velocity 1.0.x (1.0.1)
  250. Sleeper 2.0.x (2.0.3)
  251. Smaller Installer 2.0.x (2.0)
  252. Virtual 1.x.y (1.5.1)
  253.  
  254. 1.0.8 (large table generation made user configurable)
  255. -----
  256. added a switch for the generation of large tables ('STR '#129), thus;
  257. the "System's Twilight Passwords" file is no longer included.
  258. updated the supported products list to include the 1.0.7 additions… (whoops!)
  259.  
  260. New generators…
  261.  
  262. MacSki 1.6.x (1.6)
  263. Nisus Writer 4.1.x (4.1.3)
  264. PowerReplace 4.5.x (4.5.5)
  265.  
  266. 1.0.7 (another minor update with some tweaking)
  267. -----
  268. added finder icons and balloon help string.
  269. output TEXT file creator made user configurable. (change 'STR ' #128)
  270.  
  271. Added yet more generators still…
  272.  
  273. Conflict Catcher 3.x.x (3.0.4)
  274. MultiClip Pro 3.2 (3.2alpha)
  275. Ram Disk Saver 2.0.x (2.0)
  276. URL Manager 1.1.x (1.1.4)
  277.  
  278. 1.0.6 (added header time stamp and a few new generators)
  279. -----
  280. As a aid to maintenance I'm changing the format used to list new generators to include, in brackets, the latest version actually tested.
  281.  
  282. Added Generator for:
  283.  
  284. CalcWorks 1.5.x (1.5.1)
  285. CD Directory 1.0.x (1.0.2)
  286. FontBox 1.7.x (1.7.1)       [only 3 unique SN#'s are possible per day]
  287. SoundEdit 16 2.0.x (2.0)
  288.  
  289. 1.0.5 (in case you were wondering 1.0.4 only lasted a couple of hours…)
  290. -----
  291. Changed some of the default names to coincide with the names that BookWorm is using so that it is easier to (further) verify the code against (a greater number of) known valid serial numbers.
  292.  
  293. Added Generator for:
  294.  
  295. DiskTracker 1.0.x (1.0.2)
  296.  
  297. 1.0.4 (a few new generators plus major internal restructuring)
  298. -----
  299. Sharing Setup Owner/Machine names are now used as the first two user names.
  300. Reordered output so products are listed in _mostly_ alphabetical order.
  301.  
  302. Added Generators for:
  303.  
  304. Now Utilities 6.0 (6.0)
  305. Dejal QuickEncrypt 2.x (2.1)
  306. Dejal SndConverter Lite/Pro 2.x (2.3)
  307. Dejal SndCataloguer 2.x (2.3)
  308. Dejal SndPlayer 2.x (2.3)
  309. Dejal TextUtilities (TextConverter 1.x/TextMerge 2.x/TextSplitter 2.x)
  310.  
  311. 1.0.3 (now compiled with CodeWarrior 8 - the lmodu glue code bug is no more)
  312. -----
  313. Added Generators for:
  314.  
  315. 4D Online Help 3.0.x (3.0.5)
  316. Apeiron
  317. Barrack 1.0.x
  318. Chiral
  319. ColorSwitch 2.3.x (2.3.0)
  320. DiskDup Pro 1.0.3 (1.0.3)
  321. Eclipse 3.x.x
  322. File Buddy 3.x.x (3.4.3)
  323. Giza 2.x.x (2.0.0)
  324. Maelstrom
  325. MathType 3.x
  326. PowerBar Pro 2.5.x (2.5)
  327. Snapz
  328. Swoop
  329. TechTool Pro 1.0.x (1.0.1)
  330. UltraFind 2.x.x (2.2)
  331.  
  332. 1.0.2 (Initial release under the name 'The SN# Gen')
  333. -----
  334. Added Generators for:
  335.  
  336. Aladdin Desktop Tools 1.0.x (1.0.1)
  337. AXS Online Reader 1.0.x
  338. Compact Pro 1.5.x
  339. Cyber Finder 2.x
  340. DeBabelizer 1.6.x
  341. DiskTools Collection 3.x.y
  342. Dome Wars 1.0.x
  343. GraphicConverter 2.x.x (2.4.2)
  344. Now Bundle 3.5.x
  345. Now Contact 3.5.x
  346. Now Quick&Easy 1.0.x
  347. Now UpToDate 3.5.x
  348. Now Utilities 5.0.x (5.0.2)
  349. Realmz 2.x.x
  350. Realmz Assault on Giant Mountain
  351. Realmz Castle in the Clouds
  352. Realmz Prelude to Pestilence
  353. ScrapIt Pro 5.x.x
  354. Smaller Installer 1.1.x
  355. Stuffit Deluxe 3.5.x thru 4.0.x
  356. Stuffit InstallerMaker 2.0.x
  357. Systems Twilight 1.0.x Access Codes & Passwords
  358. Ultima III 1.x
  359. Versatile Pro 1.6.x
  360.  
  361. 1.0.1,1.0 (premature proof of concept releases)
  362. ---------
  363. Generators for:
  364.  
  365. Developer VISE 3.5
  366. Developer VISE Lite 3.5
  367. Updater VISE 1.0.1
  368.